/*
 * Copyright (c) 2014 Baidu.com, Inc. All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */
package com.baidubce.services.bcc.model;

/**
 * The reservation model to specify the detail to buy.
 */
public class Reservation {
    /**
     * The duration to buy in specified time unit,
     * available values are [1,2,3,4,5,6,7,8,9,12,24,36] now.
     */
    private int reservationLength;

    /**
     * The time unit to specify the duration ,only "Month" can be used now.
     */
    private String reservationTimeUnit = "Month";

    public int getReservationLength() {
        return reservationLength;
    }

    public void setReservationLength(int reservationLength) {
        this.reservationLength = reservationLength;
    }

    /**
     * Configure reservationLength for the model.
     *
     * @param reservationLength The duration to buy in specified time unit,
     *                          available values are [1,2,3,4,5,6,7,8,9,12,24,36] now.
     * @return Reservation with specified reservationLength.
     */
    public Reservation withReservationLength(int reservationLength) {
        this.reservationLength = reservationLength;
        return this;
    }

    public String getReservationTimeUnit() {
        return reservationTimeUnit;
    }

    public void setReservationTimeUnit(String reservationTimeUnit) {
        this.reservationTimeUnit = reservationTimeUnit;
    }


    /**
     * Configure reservationTimeUnit for the model.
     *
     * @param reservationTimeUnit The time unit to specify the duration ,only "Month" can be used now.
     * @return Reservation with specified reservationTimeUnit.
     */
    public Reservation withReservationTimeUnit(String reservationTimeUnit) {
        this.reservationTimeUnit = reservationTimeUnit;
        return this;
    }

    @Override
    public String toString() {
        return "Reservation{"
                + "reservationLength=" + reservationLength
                + ", reservationTimeUnit='" + reservationTimeUnit + '\''
                + '}';
    }
}
